From: Ray Strode Date: Wed, 20 Feb 2013 18:30:26 +0000 (-0500) Subject: endSessionDialog: don't process response until closed X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~4684 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=b4b13b0cb92fdfd09bb47ac1c5137a240d6ca29a;p=gnome-shell.git endSessionDialog: don't process response until closed Right now if a user logs out, they are thrown to the login screen imediately, without even seeing the dialog close. This commit fades the dialog out before processing the logout. https://bugzilla.gnome.org/show_bug.cgi?id=694296 --- diff --git a/js/ui/endSessionDialog.js b/js/ui/endSessionDialog.js index 7d46144ee..b7850a484 100644 --- a/js/ui/endSessionDialog.js +++ b/js/ui/endSessionDialog.js @@ -379,7 +379,12 @@ const EndSessionDialog = new Lang.Class({ let signal = dialogContent.confirmButtons[i].signal; let label = dialogContent.confirmButtons[i].label; buttons.push({ action: Lang.bind(this, function() { - this._confirm(signal); + this.close(true); + let signalId = this.connect('closed', + Lang.bind(this, function() { + this.disconnect(signalId); + this._confirm(signal); + })); }), label: label }); } @@ -387,9 +392,11 @@ const EndSessionDialog = new Lang.Class({ this.setButtons(buttons); }, - close: function() { + close: function(skipSignal) { this.parent(); - this._dbusImpl.emit_signal('Closed', null); + + if (!skipSignal) + this._dbusImpl.emit_signal('Closed', null); }, cancel: function() {